/*******************************************************************************
 * Classe CriDeGuerre : classe de gestion du cri de guerre, donnant un boost de
 *                      puissance au personnage dont le joueur crie dans le
 *                      microphone
 ******************************************************************************/
package Armes;

import prjintwg.Jeu;
import ElementsDeJeu.Microphone;
import prjintwg.PnlJeu;

/**
 *
 * @author W&G
 */
public class CriDeGuerre {

    private Microphone microphone;//Microphone utilisé pour capter le son
    private int volume;//Volume du son capté
    private PnlJeu pnlJeu;//Panneau contenant le jeu
/**
 * Constructeur du cri de guerre
 * @param pnljeu Panneau contenant le jeu
 */
    public CriDeGuerre(PnlJeu pnljeu) {
        volume = 0;
        pnlJeu = pnljeu;
        microphone = new Microphone(pnlJeu, 1);
    }
/**
 * Retourne le volume capté
 * @return Retourne le volume capté
 */
    public int getVolume() {
        return volume;
    }
/**
 * Methode de gestion du cri octrayant force au joueur correspondant
 */
    public void crier() {
        pnlJeu.setBarreVolume(true);
        microphone.captureAudio();
       
        while (microphone.getCaptureThread().isAlive()) {
        }
        volume = microphone.getVolume();
        microphone.playAudio();
        while (microphone.getPlayThread().isAlive()) {
        }
        if (Jeu.getTourTir() % 2 == 0) {
            pnlJeu.getPersonnage2().setForce((double) (1.0 + ((1000.0 - (double) pnlJeu.getPersonnage2().getPv()) * (double) volume) / 15000.0));
            pnlJeu.getPersonnage2().setEtat(1);
        } else {
            pnlJeu.getPersonnage1().setForce((double) (1.0 + ((1000.0 - (double) pnlJeu.getPersonnage1().getPv()) * (double) volume) / 15000.0));
            pnlJeu.getPersonnage1().setEtat(1);
        }
    }
}
